perm filename FAK15A.SAI[DOC,TOB] blob
sn#234928 filedate 1976-08-31 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002
C00007 00003 WHILE TRUE DO BEGIN "ERR_BLOCK"
C00009 ENDMK
C⊗;
comment
this version of fake finds the angular and position
errors for the edge operator as a function of step height,
position, and angle;
comment
conf=sqrt(s0sq/(s0sq+n0sq)) ie cosine
diff=s0sq;
BEGIN "EDGE_TEST"
DEFINE SAFE_ARRAY=1; comment this makes all arrays safe;
comment REQUIRE "VISION.2[SYS,TOB]" SOURCE_FILE; comment vision language package;
comment
this is the header for the vision language packages;
comment REQUIRE "STD.7[SYS,TOB]" SOURCE_FILE;
REQUIRE "STD.14[S1,TOB]" SOURCE_FILE;
comment DEFINE IF_COMPILED_STD=1;
REQUIRE "HELIB[1,3]" LIBRARY;
REQUIRE "VARIAB.1[SYS,TOB]" SOURCE_FILE;
REQUIRE "WINDOW.3[SYS,TOB]" SOURCE_FILE;
REQUIRE "EDGE.2[SYS,TOB]" SOURCE_FILE;
REQUIRE "EDGEP.2[SYS,TOB]" SOURCE_FILE;
REQUIRE "RANDOM.2[SYS,TOB]" SOURCE_FILE;
REQUIRE "STEP.6[SYS,TOB]" SOURCE_FILE;
REQUIRE "STAT.1[SYS,TOB]" SOURCE_FILE;
comment DEFINE WINDOW_FILE=⊂"WINDOW.3[SYS,TOB]" SOURCE_FILE⊃;
comment DEFINE EDGE_FILE=⊂"EDGE.2[SYS,TOB]" SOURCE_FILE⊃;
comment DEFINE EDGE_PRINT=⊂"EDGEP.2[SYS,TOB]" SOURCE_FILE⊃;
comment DEFINE TV_VARIABLES=⊂"VARIAB.1[SYS,TOB]" SOURCE_FILE⊃;
comment DEFINE RANDOM_FILE=⊂"RANDOM.2[SYS,TOB]" SOURCE_FILE⊃;
comment DEFINE FAKE_FILE=⊂"STEP.6[SYS,TOB]" SOURCE_FILE⊃;
comment DEFINE STATISTICS_FILE=⊂"STAT.1[SYS,TOB]" SOURCE_FILE⊃;
DEFINE OP2="1";
DEFINE OP1="0";
IFCR OP1 AND OP2 THENC REDEFINE OP2=0;ENDC;
IFCR OP1 THENC DEFINE NBHD_FAKE=6;ENDC;
IFCR OP2 THENC DEFINE NBHD_FAKE=8;ENDC;
comment REQUIRE "SPACEA.2[S1,TOB]" SOURCE_FILE;
comment REQUIRE "WINDOW.11I[S1,TOB]" SOURCE_FILE;
comment REQUIRE "WINDF.11[S1,TOB]" SOURCE_FILE;
IFCR OP1 THENC
REQUIRE "OP1[S1,TOB]" LOAD_MODULE;
ENDC;
IFCR OP2 THENC
REQUIRE "OP2[S1,TOB]" LOAD_MODULE;
ENDC;
comment REQUIRE "VARIAB.3I[S1,TOB]" SOURCE_FILE;
comment REQUIRE "EDGE.5[S1,TOB]" SOURCE_FILE;
comment REQUIRE "EDGEP.5[S1,TOB]" SOURCE_FILE;
comment REQUIRE "RANDOM.2[S1,TOB]" SOURCE_FILE;
comment REQUIRE "GAUSS.4[S1,TOB]" SOURCE_FILE;
comment REQUIRE EDGE_FILE;
comment REQUIRE EDGE_PRINT;
comment REQUIRE TV_VARIABLES;
comment REQUIRE FAKE_FILE; ! file for fake edges;
comment REQUIRE STATISTICS_FILE; ! file for mean and standard deviation;
MODIFY(BITS);
EJINIT; ! init Hueckel operator;
WHILE YES("TEST EDGE OPERATOR? ") DO BEGIN "TST_LOOP"
REAL ALPHA,DELTA;
ASK_FAKE;
FAKE;
OP_APPLY(NBHD_FAKE/2,NBHD_FAKE/2); ! try the edge operator on it;
ERROR_FAKE(ALPHA,DELTA); ! get angle and perpend distance errors;
TCRLF;PRINT(ALPHA);PRINT(DELTA);
TCRLF;PRINT(THETA_FAKE);PRINT(RHO_FAKE);
END "TST_LOOP";
WHILE TRUE DO BEGIN "ERR_BLOCK"
INTEGER K;
INTEGER ENOUGH;
ENOUGH←2000;
MODIFY(ENOUGH);
ASK_FAKE;
NOISE_EDGE←NOISE_FAKE;
ASK_EDGE; ! ask for values for edge operator cutoffs;
BEGIN "ERR_A"
REAL_ARRAY VALUE[1:2];
REAL_ARRAY MEAN[1:2];
REAL_ARRAY STD_DEV[1:2];
DEFINE α=1;
DEFINE β=2;
SIMPLE PROCEDURE VAL;
comment funarg called by NRMS_STAT;
WHILE TRUE DO BEGIN
FAKE;
IF EJLI(NBHD_FAKE/2,NBHD_FAKE/2,0,0)∧¬BCOMP THEN BEGIN
ERROR_FAKE(VALUE[α],VALUE[β]);
RETURN;
END;
END;
NRMS_STAT(VALUE,MEAN,STD_DEV,VAL,ENOUGH,50);
comment obtain mean and std deviations for variables in arrays
2 variables, ENOUGH samples, report every 50 samples;
OUTSTR(CRLF&"MEAN AND STANDARD DEVIATION---ALPHA & DELTA "&CRLF);
OUTSTR(CVG(MEAN[α]));OUTSTR(CVG(STD_DEV[α])&CRLF);
OUTSTR(CVG(MEAN[β]));OUTSTR(CVG(STD_DEV[β])&CRLF);
END "ERR_A";
END "ERR_BLOCK";
END "EDGE_TEST";